Teoría de la decisión y evaluación de modelos de AE
Repaso Modelos Lineales
Intro a tidymodels
Plan para hoy
Técnicas de Remuestreo
Validación cruzada
Parámetros auxiliares
Remuestreo
Técnicas de remuestreo
Hemos mencionado que para evaluar los modelos con distintos números de parámetro es importante separar la muestra en entrenamiento y testeo.
No usar los mismos datos para entrenar el modelo y evaluarlo.
Estimar el error de predicción con los datos de entrenamiento subestima el error.
El error test se puede calcular fácilmente si contamos con un conjunto de testeo pero hay veces que no contamos con él.
En ausencia de un conjunto test que pueda ser usado para estimar el error de testeo hay un conjunto de técnicas que permiten estimar el mismo utilizando el conjunto de entrenamiento disponible.
Algunas técnicas ajustan el error de entrenamiento para estimar el error de testeo
Técnicas de remuestreo
Las técnicas que veremos hoy estiman el error de testeo manteniendo afuera un conjunto de observaciones de entrenamiento.
Idea general: se extraen sucesivas muestras del conjunto de entrenamiento, se ajusta el modelo en cada muestra para obtener información adicional sobre el modelo ajustado
Son fundamentales para la estadística moderna.
Aplicaciones habituales
En general: \[
\\
\]
Generar (re)-muestras a partir de UN conjunto de datos de entrenamiento.
Se usan para evaluar propiedades estadísticas: errores estándard, sesgo, error de predicción.
Selección de parámetros de ajuste basados en remuestreo \[
\\
\]
Dos grandes herramientas CV y Bootstrap:
Estas técnicas son tan generales que pueden ser utilizadas para la mayoría de los método de aprendizaje
Aplicación: Error validación
Nos gustaría estimar la variabilidad en el ajuste de un modelo de regresión lineal.
Podemos usar alguna de las técnicas de remuestreo para sacar repetidas muestras del conjunto de entrenamiento, ajustar un modelo de regresión para cada nuevo conjunto y luego examinar hasta que punto el ajuste difiere.
Este procedimiento nos puede dar información que no tenemos si ajustamos el modelo solamente una vez con los datos observados.
Los métodos de remuestreo pueden tener un alto costo computacional ya que estamos ajustando muchas veces el modelo, pero actualmente el desarrollo computacional no es una limitante como previamente.
Conjunto de validación
Queremos estimar el error de predicción, una aproximación válida sería dividir aleatoriamente los datos en dos sub-conjuntos de similar tamaño (entrenamiento y validación).
El modelo se ajusta con lo datos de entrenamiento y el modelo se usa para predecir en el conjunto de validación.
Se calcula el MSE (regresión) que estima el error de predicción.
Conjunto de validación
Ejemplo: Datos Auto
Datos sobre 392 modelos de autos recabados en 1983, usados en ISLR
\[
\\
\]
Auto |>select(mpg, horsepower, year, name) |>head()
mpg horsepower year name
1 18 130 70 chevrolet chevelle malibu
2 15 165 70 buick skylark 320
3 18 150 70 plymouth satellite
4 16 150 70 amc rebel sst
5 17 140 70 ford torino
6 15 198 70 ford galaxie 500
# Sorteamos indices para conjunto entrenamientoset.seed(432)tr <-sample(1:392, 196)# Ajustamos modelo usando datos trfit <-lm(mpg ~ horsepower, subset = tr, data = Auto)# Calculamos error MSE en los datos NO utilizadosmean( (Auto$mpg -predict(fit, Auto))[-tr]^2 )
[1] 23.7725
Ejemplo: Ajuste modelo lineal
Repetimos el procedimientos \(R=1000\) veces..
R <-1000err.val <-numeric(R)for (r in1:R) { tr <-sample(1:392, 196) fit <-lm(mpg ~ horsepower, data = Auto, subset = tr) err.val[r] <-mean( (Auto$mpg -predict(fit, Auto))[-tr]^2 ) }
Extendemos el modelo incluyendo potencias de horsepower en el modelo.
Conjunto de Validación
Simple de entender e implementar pero tiene dos problemas:
La estimación del error de predicción puede ser muy variable dependiendo las observaciones seleccionadas en cada sub-conjunto.
Esta aproximación tiende a sobrestimar el error de predicción.
Veremos el método de validación cruzada que intenta superar estos problemas
Validación cruzada
Validación cruzada
Validación cruzada implica un refinamiento del conjunto de validación que ataca sus dos problemas.
Método para estimar error de predicción de un modelo.
Comparar modelos, seleccionar el de menor error. (Evaluación de modelos)
Seleccionar los tuning parameters. (Selección de modelos)
Error de predicción
Idea básica: Dividir los datos en subconjuntos, estimo el modelo con una parte y calculo el error prediciendo datos NO utilizados en la estimación del modelo.
¿Cómo dividir los datos? Trade off entre sesgo y varianza, \[
E\left[ (Y - f(X))^2 \right] = \sigma^2+\left(E \left[\hat f(X)\right]-f(X)\right)^2 + E \left[ ( \hat f(X) - E\hat f(X) )^2 \right]
\]
Muchos datos para estimar y pocos para predecir (poco sesgo, mucha varianza),
Validación cruzada
Varias formas de dividir nuestro conjunto de datos. Si tenemos n observaciones:
\(n-1\) observaciones para estimar el modelo y 1 para predecir y repito esto \(n\) veces (LOO).
\(k\) grupos con \(k<n\): estimo con n-n/k y se predice con n/k, repito el procedimiento k veces.